package com.ruoyi.walmart.domain.Items;

import com.opencsv.bean.CsvBindByName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class ItemReportCsv {

    @CsvBindByName(column = "SKU")
    private String sku;

    @CsvBindByName(column ="Item ID")
    private String itemId;

    @CsvBindByName(column ="Product Name")
    private String productName;

    @CsvBindByName(column ="Lifecycle Status")
    private String lifecycleStatus;

    @CsvBindByName(column ="Publish Status")
    private String publishStatus;

    @CsvBindByName(column ="Status Change Reason")
    private String statusChangeReason;

    @CsvBindByName(column ="Product Category")
    private String productCategory;

    @CsvBindByName(column ="Price")
    private BigDecimal price;

    @CsvBindByName(column ="Currency")
    private String currency;

    @CsvBindByName(column ="Buy Box Item Price")
    private BigDecimal buyBoxItemPrice;

    @CsvBindByName(column ="Buy Box Shipping Price")
    private BigDecimal buyBoxShippingPrice;

    @CsvBindByName(column ="MSRP")
    private BigDecimal msrp;

    @CsvBindByName(column ="Product Tax Code")
    private String productTaxCode;

    @CsvBindByName(column ="Ship Methods")
    private String shipMethods;

    @CsvBindByName(column ="Shipping Weight")
    private BigDecimal shippingWeight;

    @CsvBindByName(column ="Shipping Weight Unit")
    private String shippingWeightUnit;

    @CsvBindByName(column ="Fulfillment Lag Time")
    private Integer fulfillmentLagTime;

    @CsvBindByName(column ="Fulfillment Type")
    private String fulfillmentType;

    @CsvBindByName(column ="WFS Sales Restriction")
    private String wfsSalesRestriction;

    @CsvBindByName(column ="WPID")
    private String wpid;

    @CsvBindByName(column ="GTIN")
    private String gtin;

    @CsvBindByName(column ="UPC")
    private String upc;

    @CsvBindByName(column ="Item Page URL")
    private String itemPageUrl;

    @CsvBindByName(column ="Primary Image URL")
    private String primaryImageURL;

    @CsvBindByName(column ="Shelf Name")
    private String shelfName;

    @CsvBindByName(column ="Primary Category Path")
    private String primaryCategoryPath;

    @CsvBindByName(column ="Brand")
    private String brand;

    @CsvBindByName(column ="Offer Start Date")
//    @DateTimeFormat(pattern = "MM/dd/yyyy")  // 日期格式
    private String offerStartDate;

    @CsvBindByName(column ="Offer End Date")
//    @DateTimeFormat(pattern = "MM/dd/yyyy")  // 日期格式
    private String offerEndDate;

    @CsvBindByName(column ="Item Creation Date")
//    @DateTimeFormat(pattern = "MM/dd/yyyy")  // 日期格式
    private String itemCreationDate;

    @CsvBindByName(column ="Item Last Updated")
    private String itemLastUpdated;

    @CsvBindByName(column ="Reviews Count")
    private Integer reviewsCount;

    @CsvBindByName(column ="Average Rating")
    private BigDecimal averageRating;

    @CsvBindByName(column ="Searchable?")
    private Object Searchable;

    @CsvBindByName(column ="Competitor URL")
    private String competitorUrl;

    @CsvBindByName(column ="Competitor Price")
    private BigDecimal competitorPrice;

    @CsvBindByName(column ="Competitor Ship Price")
    private BigDecimal competitorShipPrice;

    @CsvBindByName(column ="Competitor Last Date Fetched")
//    @DateTimeFormat(pattern = "MM/dd/yyyy")  // 日期格式
    private String competitorLastDateFetched;
}
